﻿#pragma once

#include "resource.h"
#include "McRebarDetailData.h"

// CDlgRebarLib 对话框

class CDlgRebarLib : public CDialogEx
{
	DECLARE_DYNAMIC(CDlgRebarLib)

public:
	CDlgRebarLib(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CDlgRebarLib();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_DIALOG_REBAR_LIB };
#endif

	enum ColumnType
	{
		CT_REBAR_NO,
		CT_REBAR_CODE,
		CT_REBAR_PATH,

		CT_COUNT,
	};

public:

	static CDlgRebarLib* GetInstance();

	void RefreshListData();

protected:

	afx_msg void OnBnClickedButtonRefresh();
	afx_msg void OnBnClickedButtonCall();
	afx_msg void OnBnClickedButtonDel();
	afx_msg void OnNMDblclkListRebar(NMHDR* pNMHDR, LRESULT* pResult);

	LRESULT OnAcadKeepFocus(WPARAM, LPARAM);

	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	virtual BOOL OnInitDialog();

	void InitRebarList();

	DECLARE_MESSAGE_MAP()

	void LoadRebarData();

	void CallRebar(const McRebarDetailData& data);

	int GetSelectedItem();
private:
	CListCtrl m_list;

	/// <summary>
	/// 钢筋大样数据到文件路径的map
	/// </summary>
	std::map<McRebarDetailData*, CString> m_rebarPathMap;

	static CDlgRebarLib* s_instance;
};
